package com.github.yangyishe.p400;

import java.util.Arrays;

/**
 * 349. 两个数组的交集
 * https://leetcode.cn/problems/intersection-of-two-arrays/
 *
 * 给定两个数组 nums1 和 nums2 ，返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
 *
 *
 *
 * 示例 1：
 *
 * 输入：nums1 = [1,2,2,1], nums2 = [2,2]
 * 输出：[2]
 * 示例 2：
 *
 * 输入：nums1 = [4,9,5], nums2 = [9,4,9,8,4]
 * 输出：[9,4]
 * 解释：[4,9] 也是可通过的
 *
 *
 * 提示：
 *
 * 1 <= nums1.length, nums2.length <= 1000
 * 0 <= nums1[i], nums2[i] <= 1000
 */
public class Problem349 {
    public static void main(String[] args) {
        int[] nums1={1,2,2,1};
        int[] nums2={2,2};

        Problem349 problem349 = new Problem349();
        int[] intersection = problem349.intersection(nums1, nums2);
        System.out.println(Arrays.toString(intersection));

    }

    public int[] intersection(int[] nums1, int[] nums2) {
        int[] temp=new int[1000];

        int resultCount=0;
        for(int n:nums1){
            if (temp[n]==0) {
                temp[n]=1;
            }
        }
        for(int n:nums2){
            if(temp[n]==1){
                temp[n]=2;
                resultCount++;
            }
        }

        int[] result=new int[resultCount];
        int resultIndex=0;
        for(int i=0;i<temp.length;i++){
            if(temp[i]==2){
                result[resultIndex++]=i;
            }
        }


        return result;
    }
}
